home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / SourceCode / Tutorial / Cookbook / 13.pie_slice / slice.c < prev    next >
C/C++ Source or Header  |  1995-06-12  |  11KB  |  310 lines

  1. /* slice.c generated from slice.psw
  2.    by unix pswrap V1.009  Wed Apr 19 17:50:24 PDT 1989
  3.  */
  4.  
  5. #include <dpsclient/dpsfriends.h>
  6. #include <string.h>
  7.  
  8. #line 1 "slice.psw"
  9. #line 10 "slice.c"
  10. void doLine(float ox, float oy, float dx, float dy)
  11. {
  12.   typedef struct {
  13.     unsigned char tokenType;
  14.     unsigned char topLevelCount;
  15.     unsigned short nBytes;
  16.  
  17.     DPSBinObjGeneric obj0;
  18.     DPSBinObjGeneric obj1;
  19.     DPSBinObjGeneric obj2;
  20.     DPSBinObjReal obj3;
  21.     DPSBinObjReal obj4;
  22.     DPSBinObjGeneric obj5;
  23.     DPSBinObjReal obj6;
  24.     DPSBinObjReal obj7;
  25.     DPSBinObjGeneric obj8;
  26.     DPSBinObjGeneric obj9;
  27.     } _dpsQ;
  28.   static const _dpsQ _dpsStat = {
  29.     DPS_DEF_TOKENTYPE, 10, 84,
  30.     {DPS_LITERAL|DPS_INT, 0, 0, 5},
  31.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 155},    /* setlinewidth */
  32.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 111},    /* newpath */
  33.     {DPS_LITERAL|DPS_REAL, 0, 0, 0},    /* param: ox */
  34.     {DPS_LITERAL|DPS_REAL, 0, 0, 0},    /* param: oy */
  35.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},    /* moveto */
  36.     {DPS_LITERAL|DPS_REAL, 0, 0, 0},    /* param: dx */
  37.     {DPS_LITERAL|DPS_REAL, 0, 0, 0},    /* param: dy */
  38.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 133},    /* rlineto */
  39.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 167},    /* stroke */
  40.     }; /* _dpsQ */
  41.   _dpsQ _dpsF;    /* local copy  */
  42.   register DPSContext _dpsCurCtxt = DPSPrivCurrentContext();
  43.   char pad[3];
  44.   register DPSBinObjRec *_dpsP = (DPSBinObjRec *)&_dpsF.obj0;
  45.   _dpsF = _dpsStat;    /* assign automatic variable */
  46.  
  47.   _dpsP[3].val.realVal = ox;
  48.   _dpsP[4].val.realVal = oy;
  49.   _dpsP[6].val.realVal = dx;
  50.   _dpsP[7].val.realVal = dy;
  51.   DPSBinObjSeqWrite(_dpsCurCtxt,(char *) &_dpsF,84);
  52.   if (0) *pad = 0;    /* quiets compiler warnings */
  53. }
  54. #line 7 "slice.psw"
  55.  
  56. #line 57 "slice.c"
  57. void doArc(float ox, float oy, float r, float ang1, float ang2)
  58. {
  59.   typedef struct {
  60.     unsigned char tokenType;
  61.     unsigned char topLevelCount;
  62.     unsigned short nBytes;
  63.  
  64.     DPSBinObjGeneric obj0;
  65.     DPSBinObjGeneric obj1;
  66.     DPSBinObjReal obj2;
  67.     DPSBinObjReal obj3;
  68.     DPSBinObjReal obj4;
  69.     DPSBinObjReal obj5;
  70.     DPSBinObjReal obj6;
  71.     DPSBinObjGeneric obj7;
  72.     DPSBinObjGeneric obj8;
  73.     } _dpsQ;
  74.   static const _dpsQ _dpsStat = {
  75.     DPS_DEF_TOKENTYPE, 9, 76,
  76.     {DPS_LITERAL|DPS_INT, 0, 0, 10},
  77.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 155},    /* setlinewidth */
  78.     {DPS_LITERAL|DPS_REAL, 0, 0, 0},    /* param: ox */
  79.     {DPS_LITERAL|DPS_REAL, 0, 0, 0},    /* param: oy */
  80.     {DPS_LITERAL|DPS_REAL, 0, 0, 0},    /* param: r */
  81.     {DPS_LITERAL|DPS_REAL, 0, 0, 0},    /* param: ang1 */
  82.     {DPS_LITERAL|DPS_REAL, 0, 0, 0},    /* param: ang2 */
  83.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 5},    /* arc */
  84.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 167},    /* stroke */
  85.     }; /* _dpsQ */
  86.   _dpsQ _dpsF;    /* local copy  */
  87.   register DPSContext _dpsCurCtxt = DPSPrivCurrentContext();
  88.   char pad[3];
  89.   register DPSBinObjRec *_dpsP = (DPSBinObjRec *)&_dpsF.obj0;
  90.   _dpsF = _dpsStat;    /* assign automatic variable */
  91.  
  92.   _dpsP[2].val.realVal = ox;
  93.   _dpsP[3].val.realVal = oy;
  94.   _dpsP[4].val.realVal = r;
  95.   _dpsP[5].val.realVal = ang1;
  96.   _dpsP[6].val.realVal = ang2;
  97.   DPSBinObjSeqWrite(_dpsCurCtxt,(char *) &_dpsF,76);
  98.   if (0) *pad = 0;    /* quiets compiler warnings */
  99. }
  100. #line 13 "slice.psw"
  101.  
  102. #line 103 "slice.c"
  103. void drawSlice(float grayshade, float radius, float startangle, float endangle, float labelps, const char *thelabel)
  104. {
  105.   typedef struct {
  106.     unsigned char tokenType;
  107.     unsigned char sizeFlag;
  108.     unsigned short topLevelCount;
  109.     unsigned long nBytes;
  110.  
  111.     DPSBinObjGeneric obj0;
  112.     DPSBinObjGeneric obj1;
  113.     DPSBinObjGeneric obj2;
  114.     DPSBinObjGeneric obj3;
  115.     DPSBinObjGeneric obj4;
  116.     DPSBinObjGeneric obj5;
  117.     DPSBinObjGeneric obj6;
  118.     DPSBinObjGeneric obj7;
  119.     DPSBinObjReal obj8;
  120.     DPSBinObjReal obj9;
  121.     DPSBinObjReal obj10;
  122.     DPSBinObjGeneric obj11;
  123.     DPSBinObjGeneric obj12;
  124.     DPSBinObjReal obj13;
  125.     DPSBinObjGeneric obj14;
  126.     DPSBinObjGeneric obj15;
  127.     DPSBinObjReal obj16;
  128.     DPSBinObjGeneric obj17;
  129.     DPSBinObjGeneric obj18;
  130.     DPSBinObjGeneric obj19;
  131.     DPSBinObjGeneric obj20;
  132.     DPSBinObjGeneric obj21;
  133.     DPSBinObjReal obj22;
  134.     DPSBinObjReal obj23;
  135.     DPSBinObjGeneric obj24;
  136.     DPSBinObjGeneric obj25;
  137.     DPSBinObjGeneric obj26;
  138.     DPSBinObjGeneric obj27;
  139.     DPSBinObjReal obj28;
  140.     DPSBinObjGeneric obj29;
  141.     DPSBinObjGeneric obj30;
  142.     DPSBinObjGeneric obj31;
  143.     DPSBinObjGeneric obj32;
  144.     DPSBinObjGeneric obj33;
  145.     DPSBinObjGeneric obj34;
  146.     DPSBinObjReal obj35;
  147.     DPSBinObjReal obj36;
  148.     DPSBinObjGeneric obj37;
  149.     DPSBinObjGeneric obj38;
  150.     DPSBinObjGeneric obj39;
  151.     DPSBinObjGeneric obj40;
  152.     DPSBinObjReal obj41;
  153.     DPSBinObjGeneric obj42;
  154.     DPSBinObjGeneric obj43;
  155.     DPSBinObjGeneric obj44;
  156.     DPSBinObjGeneric obj45;
  157.     DPSBinObjGeneric obj46;
  158.     DPSBinObjGeneric obj47;
  159.     DPSBinObjGeneric obj48;
  160.     DPSBinObjGeneric obj49;
  161.     DPSBinObjGeneric obj50;
  162.     DPSBinObjGeneric obj51;
  163.     DPSBinObjGeneric obj52;
  164.     DPSBinObjGeneric obj53;
  165.     DPSBinObjGeneric obj54;
  166.     DPSBinObjGeneric obj55;
  167.     DPSBinObjGeneric obj56;
  168.     DPSBinObjGeneric obj57;
  169.     DPSBinObjGeneric obj58;
  170.     DPSBinObjGeneric obj59;
  171.     DPSBinObjGeneric obj60;
  172.     DPSBinObjGeneric obj61;
  173.     DPSBinObjGeneric obj62;
  174.     DPSBinObjGeneric obj63;
  175.     DPSBinObjGeneric obj64;
  176.     DPSBinObjGeneric obj65;
  177.     DPSBinObjGeneric obj66;
  178.     DPSBinObjGeneric obj67;
  179.     DPSBinObjGeneric obj68;
  180.     DPSBinObjGeneric obj69;
  181.     DPSBinObjGeneric obj70;
  182.     DPSBinObjReal obj71;
  183.     DPSBinObjGeneric obj72;
  184.     DPSBinObjGeneric obj73;
  185.     DPSBinObjGeneric obj74;
  186.     DPSBinObjGeneric obj75;
  187.     DPSBinObjGeneric obj76;
  188.     DPSBinObjGeneric obj77;
  189.     DPSBinObjGeneric obj78;
  190.     DPSBinObjGeneric obj79;
  191.     } _dpsQ;
  192.   static const _dpsQ _dpsStat = {
  193.     DPS_DEF_TOKENTYPE, 0, 70, 648,
  194.     {DPS_LITERAL|DPS_INT, 0, 0, 1},
  195.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 155},    /* setlinewidth */
  196.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 111},    /* newpath */
  197.     {DPS_LITERAL|DPS_INT, 0, 0, 0},
  198.     {DPS_LITERAL|DPS_INT, 0, 0, 0},
  199.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},    /* moveto */
  200.     {DPS_LITERAL|DPS_INT, 0, 0, 0},
  201.     {DPS_LITERAL|DPS_INT, 0, 0, 0},
  202.     {DPS_LITERAL|DPS_REAL, 0, 0, 0},    /* param: radius */
  203.     {DPS_LITERAL|DPS_REAL, 0, 0, 0},    /* param: startangle */
  204.     {DPS_LITERAL|DPS_REAL, 0, 0, 0},    /* param: endangle */
  205.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 5},    /* arc */
  206.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 22},    /* closepath */
  207.     {DPS_LITERAL|DPS_REAL, 0, 0, 1.415},
  208.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 346},    /* setmiterlimit */
  209.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 78},    /* gsave */
  210.     {DPS_LITERAL|DPS_REAL, 0, 0, 0},    /* param: grayshade */
  211.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 150},    /* setgray */
  212.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 66},    /* fill */
  213.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 77},    /* grestore */
  214.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 167},    /* stroke */
  215.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 78},    /* gsave */
  216.     {DPS_LITERAL|DPS_REAL, 0, 0, 0},    /* param: startangle */
  217.     {DPS_LITERAL|DPS_REAL, 0, 0, 0},    /* param: endangle */
  218.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 1},    /* add */
  219.     {DPS_LITERAL|DPS_INT, 0, 0, 2},
  220.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 54},    /* div */
  221.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 136},    /* rotate */
  222.     {DPS_LITERAL|DPS_REAL, 0, 0, 0},    /* param: radius */
  223.     {DPS_LITERAL|DPS_INT, 0, 0, 0},
  224.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 173},    /* translate */
  225.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 111},    /* newpath */
  226.     {DPS_LITERAL|DPS_INT, 0, 0, 0},
  227.     {DPS_LITERAL|DPS_INT, 0, 0, 0},
  228.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},    /* moveto */
  229.     {DPS_LITERAL|DPS_REAL, 0, 0, 0},    /* param: labelps */
  230.     {DPS_LITERAL|DPS_REAL, 0, 0, .8},
  231.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 108},    /* mul */
  232.     {DPS_LITERAL|DPS_INT, 0, 0, 0},
  233.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 99},    /* lineto */
  234.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 167},    /* stroke */
  235.     {DPS_LITERAL|DPS_REAL, 0, 0, 0},    /* param: labelps */
  236.     {DPS_LITERAL|DPS_INT, 0, 0, 0},
  237.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 173},    /* translate */
  238.     {DPS_LITERAL|DPS_INT, 0, 0, 0},
  239.     {DPS_LITERAL|DPS_INT, 0, 0, 0},
  240.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 172},    /* transform */
  241.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 77},    /* grestore */
  242.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 95},    /* itransform */
  243.     {DPS_LITERAL|DPS_NAME, 0, DPSSYSNAME, 426},    /* y */
  244.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 62},    /* exch */
  245.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 51},    /* def */
  246.     {DPS_LITERAL|DPS_NAME, 0, DPSSYSNAME, 425},    /* x */
  247.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 62},    /* exch */
  248.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 51},    /* def */
  249.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 425},    /* x */
  250.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 426},    /* y */
  251.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},    /* moveto */
  252.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 425},    /* x */
  253.     {DPS_LITERAL|DPS_INT, 0, 0, 0},
  254.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 102},    /* lt */
  255.     {DPS_EXEC|DPS_ARRAY, 0, 6, 592},
  256.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 84},    /* if */
  257.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 426},    /* y */
  258.     {DPS_LITERAL|DPS_INT, 0, 0, 0},
  259.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 102},    /* lt */
  260.     {DPS_EXEC|DPS_ARRAY, 0, 4, 560},
  261.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 84},    /* if */
  262.     {DPS_LITERAL|DPS_STRING, 0, 0, 640},    /* param thelabel */
  263.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 160},    /* show */
  264.     {DPS_LITERAL|DPS_INT, 0, 0, 0},
  265.     {DPS_LITERAL|DPS_REAL, 0, 0, 0},    /* param: labelps */
  266.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 110},    /* neg */
  267.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 134},    /* rmoveto */
  268.     {DPS_LITERAL|DPS_STRING, 0, 0, 640},    /* param thelabel */
  269.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 166},    /* stringwidth */
  270.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 117},    /* pop */
  271.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 110},    /* neg */
  272.     {DPS_LITERAL|DPS_INT, 0, 0, 0},
  273.     {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 134},    /* rmoveto */
  274.     }; /* _dpsQ */
  275.   _dpsQ _dpsF;    /* local copy  */
  276.   register DPSContext _dpsCurCtxt = DPSPrivCurrentContext();
  277.   char pad[3];
  278.   register DPSBinObjRec *_dpsP = (DPSBinObjRec *)&_dpsF.obj0;
  279.   register int _dps_offset = 640;
  280.   _dpsF = _dpsStat;    /* assign automatic variable */
  281.  
  282.   _dpsP[16].val.realVal = grayshade;
  283.   _dpsP[8].val.realVal =
  284.   _dpsP[28].val.realVal = radius;
  285.   _dpsP[9].val.realVal =
  286.   _dpsP[22].val.realVal = startangle;
  287.   _dpsP[10].val.realVal =
  288.   _dpsP[23].val.realVal = endangle;
  289.   _dpsP[35].val.realVal =
  290.   _dpsP[41].val.realVal =
  291.   _dpsP[71].val.realVal = labelps;
  292.   _dpsP[74].length =
  293.   _dpsP[68].length = strlen(thelabel);
  294.   _dpsP[74].val.stringVal = _dps_offset;
  295.   _dps_offset += (_dpsP[74].length + 3) & ~3;
  296.   _dpsP[68].val.stringVal = _dps_offset;
  297.   _dps_offset += (_dpsP[68].length + 3) & ~3;
  298.  
  299.   _dpsF.nBytes = _dps_offset+8;
  300.   DPSBinObjSeqWrite(_dpsCurCtxt,(char *) &_dpsF,648);
  301.   DPSWriteStringChars(_dpsCurCtxt, (char *)thelabel, _dpsP[74].length);
  302.   DPSWriteStringChars(_dpsCurCtxt, (char *)pad, ~(_dpsP[74].length + 3) & 3);
  303.   DPSWriteStringChars(_dpsCurCtxt, (char *)thelabel, _dpsP[68].length);
  304.   DPSWriteStringChars(_dpsCurCtxt, (char *)pad, ~(_dpsP[68].length + 3) & 3);
  305.   if (0) *pad = 0;    /* quiets compiler warnings */
  306. }
  307. #line 45 "slice.psw"
  308.  
  309.  
  310.